Synchronization between virtual network functions and host systems

ABSTRACT

A network function virtualization (NFV) platform may include one or more processors to identify a condition associated with the NFV platform, where the condition may affect operation of at least one virtual network function (VNF) hosted by or associated with the NFV platform; determine, based on the condition, information that may be provided or an action that may be performed with regard to the at least one VNF; and/or generate or transmit a message identifying the information and/or that may cause the action to be performed with regard to the at least one VNF.

BACKGROUND

Network function virtualization (NFV) is a network architecture conceptthat uses the technologies of information technology virtualization tovirtualize classes of network node functions into building blocks thatmay connect, or chain together, to create communication services. An NFVdeployment includes one or more virtualized network functions (VNFs),which include virtual machines (VMs) or Linux containers runningsoftware on processors. The VNFs may be implemented on high-volumeservers, switches, and storage devices, or within a cloud computingenvironment, rather than using custom hardware appliances for eachnetwork function.

SUMMARY

According to some possible implementations, a network functionvirtualization (NFV) platform may include one or more processors toidentify a condition associated with the NFV platform, where thecondition may affect operation of at least one virtual network function(VNF) hosted by or associated with the NFV platform; determine, based onthe condition, information that may be provided or an action that may beperformed with regard to the at least one VNF; and/or generate ortransmit a message identifying the information and/or that may cause theaction to be performed with regard to the at least one VNF.

According to some possible implementations, a method may includeidentifying, by an NFV platform, first information associated with theNFV platform, where the first information may relate to operation of atleast one VNF hosted by or associated with the NFV platform;determining, by the NFV platform and based on the first information,second information that may be provided or an action that may beperformed with regard to the at least one VNF; and/or generating orproviding, by the NFV platform, a message identifying the secondinformation and/or to cause the action to be performed with regard tothe at least one VNF.

According to some possible implementations, a non-transitorycomputer-readable medium may store one or more instructions that, whenexecuted by one or more processors, may cause the one or more processorsto identify a condition associated with a physical interface associatedwith an NFV platform, where the condition may affect operation of atleast one VNF hosted by or associated with the NFV platform; determine,based on the condition, information that may be provided and an actionthat may be performed with regard to the at least one VNF; and/orgenerate or transmit a message identifying the information and causingthe action to be performed with regard to the at least one VNF.

BRIEF DESCRIPTION OF THE DRAWINGS

FIGS. 1A and 1B are diagrams of overviews of example implementationsdescribed herein;

FIG. 2 is a diagram of an example environment in which systems and/ormethods, described herein, may be implemented;

FIG. 3 is a diagram of example components of one or more devices of FIG.2; and

FIG. 4 is a flow chart of an example process for synchronization betweena host system and VNFs.

DETAILED DESCRIPTION

The following detailed description of example implementations refers tothe accompanying drawings. The same reference numbers in differentdrawings may identify the same or similar elements.

NFV is a technology to run network functions, such as statefulfirewalls, wide area network (WAN) accelerators, wireless local areanetwork (LAN) controllers, and/or the like on a host system. Forexample, the network functions may be run as VNFs on hardware platforms.The VNFs can be virtual machines (VMs), Linux containers, and/or thelike. The benefits of NFV may include elastic capacity, multi-vendorchoice, easier deployment of services, remote management of the hostsystem, and/or the like. An example use-case of NFV may includedeployment on customer premises equipment (CPE), which may be managedremotely by a service provider.

On the host system, an NFV platform may manage communication of VNFswith physical interfaces of the host system, may manage lifecycles ofVNFs, and may provide backbone networking support for service-chainingof VNFs. For example, VNFs may include similar software to software thatruns on corresponding hardware appliances. Physical interfaces of ahardware appliance may be represented by virtual interfaces in the VNF.Multiple VNFs may be service-chained to provide a set of networkservices similar to those provided by hardware appliances, and trafficto and from the multiple VNFs may be received and transmitted viaphysical interfaces of the host system.

In some cases, a VNF may not be able to easily identify physical aspectsof the host system, such as states of physical interfaces, parametersassociated with the host system, internet protocol (IP) information,and/or the like. For example, the VNF may not be capable of monitoringsuch physical aspects, or it may be resource-intensive to probe physicalinterfaces. This may lead to problems, such as traffic black holing orpacket loss, inferior transport control protocol/user datagram protocol(TCP/UDP) performance, and/or the like. These problems may further leadto additional problems for devices receiving services via the NFVplatform as those devices may not receive traffic or packets asexpected, resulting in failures, inoperability, and/or the like.Problems associated with VNFs being unable to identify aspects of thehost system are described in more detail in connection with FIG. 4,below.

Some implementations described herein may provide a communicationchannel and protocol for communication between the NFV platform and VNFsto exchange information regarding the host system and/or other VNFs. Forexample, some implementations described herein may provide astandardized messaging system to convey information regarding physicalaspects of the host system to VNFs hosted on the host system or VNFs incommunication with the host system. In this way, states of physicalinterfaces, parameters associated with the host system, internetprotocol (IP) information, and/or the like can be communicated from theNFV platform to the VNFs, which improves performance of the VNFs andreduces the occurrence of problems relating to lack of visibility ofphysical aspects of the host system. Thus, VNF performance may beimproved without requiring implementation of an external controller orresource-intensive monitoring operations by the VNFs. Further, networkperformance (e.g., of a network that includes the host system) may beimproved relative to a network that does not include an NFV platformthat conveys information regarding physical aspects of the host systemto VNFs hosted on the host system or VNFs in communication with the hostsystem.

FIGS. 1A and 1B are diagrams of overviews of example implementations 100and 100′ described herein. As shown in FIGS. 1A and 1B, exampleimplementations 100 and 100′ may include network device 1 and networkdevice 2 and a host system including VNF router 1 and VNF router 2.

As shown by reference number 105 in FIG. 1A, assume that a physical linkbetween network device 2 and VNF router 1 fails, which may lead totraffic black holing (e.g., due to the VNF router 1 sending traffic tonetwork device 2 through a failed physical link). As shown by referencenumber 110, the VNF router 1 may lack visibility of a condition ofphysical links (e.g., a physical link between network device 2 and VNFrouter 1) without expensive probing by VNF router 1 (i.e., without VNFrouter 1 frequently verifying an existing physical link with networkdevice 2). For this reason, the traffic en route to network device 2 maybe lost because VNF router 1 does not have information indicating thatthe physical link with network device 2 has failed. As a result, and asshown by reference number 115, VNF router 1 may advertise erroneous linkinformation based on a presumption that the link to network device 2 isoperational. As shown by reference number 118, VNF router 1 may provideerroneous link information to VNF router 2 and to network device 1.Accordingly, based on the erroneous link information, as shown byreference number 120, network device 1 may continue to route traffic toVNF router 1 as a result, which may lead to traffic black holing orpacket loss when VNF router 1 attempts to route the traffic through thefailed physical link to network device 2.

As shown in FIG. 1B, example implementation 100′ includes an NFVplatform capable of providing an interface status message to VNF router1 to address the erroneous link advertisements provided in FIG. 1A. Asshown by reference number 125, the NFV platform may detect a conditionidentifying the physical link failure. For example, the NFV platform maycommunicate with the host system to identify failed physical links orother information. As shown by reference number 130, the NFV platformmay identify interface information to be provided (e.g., may identifywhich physical interface is down, which physical interface is up, whichphysical interface has delays that satisfy a threshold, etc.) so thatVNF router 1 can update a virtual interface status (e.g., to indicatethat the virtual interface mapped to the failed physical interface isnot to be used).

As shown by reference number 135, the NFV platform may generate aninterface status message (described in more detail with regard to FIG.4) identifying the interface information, and may provide the interfacestatus message to VNF router 1. For example, the NFV platform mayprovide the interface status message via a virtual serial interface, anIP interface, and/or the like. As shown by reference number 140, the VNFrouter 1 may identify a physical interface link failure based on theinterface status message. As shown by reference number 145, the VNFrouter 1 may update link advertisements so traffic is rerouted. As shownby reference number 150, VNF router 1 may provide updated linkadvertisements (based on identifying failure of the physical interface)to network device 1 and VNF router 2. As shown by reference number 155,network device 1 may use the updated link advertisement to determinethat traffic is to be routed via VNF router 2.

Some implementations described herein may provide a communicationchannel and protocol for communication between an NFV platform and VNFsto exchange information regarding the host system (that hosts the NFVplatform and/or the VNFs) and/or other VNFs. For example, someimplementations described herein may provide a standardized messagingsystem to convey information regarding physical aspects of the hostsystem to VNFs hosted on the host system or VNFs in communication withthe host system. In this way, states of physical interfaces, parametersassociated with the host system, IP information, and/or the like can becommunicated from the NFV platform to VNFs hosted by or in communicationwith the host system, which improves performance of the VNFs and reducesthe occurrence of problems relating to lack of visibility of physicalaspects of the host system. Thus, VNF performance may be improvedwithout requiring implementation of an external controller orresource-intensive monitoring operations by the VNFs.

As indicated above, FIGS. 1A and 1B are provided merely as examples.Other examples are possible and may differ from what was described withregard to FIGS. 1A and 1B.

FIG. 2 is a diagram of an example environment 200 in which systemsand/or methods, described herein, may be implemented. As shown in FIG.2, environment 200 may include an NFV platform 210 in a host system 215,a cloud environment 220, one or more VNFs 230, 230-1 through 230-N(N≥1)in the cloud environment and/or host system 215 (hereinafter referred tocollectively as “VNFs 230,” and individually as “VNF 230”), and one ormore network devices 240. Devices of environment 200 may interconnectvia wired connections, wireless connections, or a combination of wiredand wireless connections.

NFV platform 210 may include a platform or environment that includes oneor more VNFs 230. NFV platform 210 may manage a lifecycle of VNF 230,and may provide backbone networking support for service-chaining of VNFs230. NFV platform 210, in conjunction with VNF(s) 230, may provideelastic capacity, multi-vendor choice for VNFs 230, easier deployment ofservices, remote management of VNFs 230, and/or the like. In someimplementations, VNF 230 may include or be implemented on customerpremises equipment (CPE) which may be managed remotely by a serviceprovider. In some implementations, NFV platform 210 may communicate withhost system 215 to receive, transmit, or route traffic between virtualinterfaces associated with VNFs 230 and physical interfaces of hostsystem 215, as described in more detail below. For example, NFV platform210 may be aware of a state of a physical interface of host system 215.In some implementations, NFV platform 210 may include an operatingsystem or kernel of host system 215. Additionally, or alternatively, NFVplatform 210 may communicate with an operating system or kernel of hostsystem 215 to determine a state of a physical interface of host system215.

NFV platform 210 may be implemented on, associated with, or hosted byhost system 215. Host system 215 includes one or more devices capable ofimplementing NFV platform 210 and/or VNF(s) 230. For example, hostsystem 215 may include a server device or a group of server devices.Host system 215 may be associated with one or more physical interfaces(e.g., physical network interfaces, ports, backbone connections,hardware connections, etc.). In some implementations, host system 215may include a server-class hardware platform.

VNF(s) 230 may include a VNF that performs a network function. Forexample, VNF 230 may include a stateful firewall, a WAN accelerator, awireless LAN controller, a virtual router, a virtual switch, and/or thelike. In some implementations, multiple VNFs 230 (e.g., tens of VNFs230, hundreds of VNFs 230, and/or the like) may be implemented on hostsystem 215. Additionally, or alternatively, one or more VNFs 230 may beimplemented in a cloud environment 220 that may be remote from hostsystem 215. Additionally, or alternatively, in some implementations, thecloud environment 220 may be implemented on host system 215.

VNF 230 may receive and transmit information via a virtual interface.Mapping of virtual interfaces of VNFs 230 to physical interfaces of hostsystem 215 may be handled by NFV platform 210. In some implementations,VNF 230 may not be able to easily determine a status of a physicalinterface of host system 215. For example, VNF 230 may be capable ofprobing a physical interface, but this may be resource-intensive.

Network device 240 includes one or more devices (e.g., one or moretraffic transfer devices) capable of processing and/or transferringtraffic. For example, network device 240 may include a firewall, arouter, a gateway, a switch, a hub, a bridge, a reverse proxy, a server(e.g., a proxy server), a security device, an intrusion detectiondevice, a load balancer, or a similar device. Network device 240 mayreceive, transmit, and/or route information based on routeadvertisements received from VNF(s) 230 and/or host system 215.

In some implementations, network device 240 may be a physical deviceimplemented within a housing, such as a chassis. In someimplementations, network device 240 may be a virtual device implementedby one or more computer devices of a cloud computing environment or adata center.

The number and arrangement of devices and networks shown in FIG. 2 areprovided as an example. In practice, there may be additional devices,fewer devices, different devices, or differently arranged devices thanthose shown in FIG. 2. Furthermore, two or more devices shown in FIG. 2may be implemented within a single device, or a single device shown inFIG. 2 may be implemented as multiple, distributed devices.Additionally, or alternatively, a set of devices (e.g., one or moredevices) of environment 200 may perform one or more functions describedas being performed by another set of devices of environment 200.

FIG. 3 is a diagram of example components of a device 300. Device 300may correspond to NFV platform 210, host system 215, cloud environment220, and/or network device 240. In some implementations, NFV platform210, host system 215, cloud environment 220, and/or network device 240may include one or more devices 300 and/or one or more components ofdevice 300. As shown in FIG. 3, device 300 may include a bus 310, aprocessor 320, a memory 330, a storage component 340, an input component350, an output component 360, and a communication interface 370.

Bus 310 includes a component that permits communication among thecomponents of device 300. Processor 320 is implemented in hardware,firmware, or a combination of hardware and software. Processor 320 takesthe form of a central processing unit (CPU), a graphics processing unit(GPU), an accelerated processing unit (APU), a microprocessor, amicrocontroller, a digital signal processor (DSP), a field-programmablegate array (FPGA), an application-specific integrated circuit (ASIC), oranother type of processing component. In some implementations, processor320 includes one or more processors capable of being programmed toperform a function. Memory 330 includes a random access memory (RAM), aread only memory (ROM), and/or another type of dynamic or static storagedevice (e.g., a flash memory, a magnetic memory, and/or an opticalmemory) that stores information and/or instructions for use by processor320.

Storage component 340 stores information and/or software related to theoperation and use of device 300. For example, storage component 340 mayinclude a hard disk (e.g., a magnetic disk, an optical disk, amagneto-optic disk, and/or a solid state disk), a compact disc (CD), adigital versatile disc (DVD), a floppy disk, a cartridge, a magnetictape, and/or another type of non-transitory computer-readable medium,along with a corresponding drive.

Input component 350 includes a component that permits device 300 toreceive information, such as via user input (e.g., a touch screendisplay, a keyboard, a keypad, a mouse, a button, a switch, and/or amicrophone). Additionally, or alternatively, input component 350 mayinclude a sensor for sensing information (e.g., a global positioningsystem (GPS) component, an accelerometer, a gyroscope, and/or anactuator). Output component 360 includes a component that providesoutput information from device 300 (e.g., a display, a speaker, and/orone or more light-emitting diodes (LEDs)).

Communication interface 370 includes a transceiver-like component (e.g.,a transceiver and/or a separate receiver and transmitter) that enablesdevice 300 to communicate with other devices, such as via a wiredconnection, a wireless connection, or a combination of wired andwireless connections. Communication interface 370 may permit device 300to receive information from another device and/or provide information toanother device. For example, communication interface 370 may include anEthernet interface, an optical interface, a coaxial interface, aninfrared interface, a radio frequency (RF) interface, a universal serialbus (USB) interface, a Wi-Fi interface, a cellular network interface,and/or the like.

Device 300 may perform one or more processes described herein. Device300 may perform these processes based on processor 320 executingsoftware instructions stored by a non-transitory computer-readablemedium, such as memory 330 and/or storage component 340. Acomputer-readable medium is defined herein as a non-transitory memorydevice. A memory device includes memory space within a single physicalstorage device or memory space spread across multiple physical storagedevices.

Software instructions may be read into memory 330 and/or storagecomponent 340 from another computer-readable medium or from anotherdevice via communication interface 370. When executed, softwareinstructions stored in memory 330 and/or storage component 340 may causeprocessor 320 to perform one or more processes described herein.Additionally, or alternatively, hardwired circuitry may be used in placeof or in combination with software instructions to perform one or moreprocesses described herein. Thus, implementations described herein arenot limited to any specific combination of hardware circuitry andsoftware.

The number and arrangement of components shown in FIG. 3 are provided asan example. In practice, device 300 may include additional components,fewer components, different components, or differently arrangedcomponents than those shown in FIG. 3. Additionally, or alternatively, aset of components (e.g., one or more components) of device 300 mayperform one or more functions described as being performed by anotherset of components of device 300.

FIG. 4 is a flow chart of an example process 400 for synchronizationbetween host system 215 and VNFs 230. In some implementations, one ormore process blocks of FIG. 4 may be performed by NFV platform 210. Insome implementations, one or more process blocks of FIG. 4 may beperformed by another device or a group of devices separate from orincluding NFV platform 210, such as host system 215, VNF(s) 230, and/ornetwork device 240.

As shown in FIG. 4, process 400 may include identifying a conditionassociated with one or more VNFs (block 410). For example, NFV platform210 may identify a condition associated with one or more VNFs 230.

In some implementations, one or more VNFs 230 may be hosted by a hostsystem 215 associated with NFV platform 210. Additionally, oralternatively, one or more VNFs 230 may be remote from host system 215and/or NFV platform 210 (e.g., in cloud environment 220). In someimplementations, NFV platform 210 may identify first informationassociated with VNFs 230. In this case, the first information mayinclude information that identifies the condition, and/or may includeother information regarding VNFs 230 (e.g., a status of VNFs 230 and/orthe like).

In some implementations, the condition may relate to a physicalinterface or physical aspect of host system 215. For example, thecondition may relate to a status of a physical link, a network interfacecontroller (NIC) configuration, an IP address configuration, and/or thelike. In some implementations, the condition may be detected by NFVplatform 210 (e.g., based on monitoring physical links, based onnegative acknowledgements (NACKs) from a downstream device, based oninformation obtained from host system 215, etc.).

In some implementations, NFV platform 210 may receive informationidentifying the condition. For example, an operating system of hostsystem 215 may communicate with NFV platform 210 to identify thecondition. As another example, VNFs 230 may provide informationidentifying the condition. In this case, VNFs 230 may provide theinformation via a serial interface (e.g., a virtio-serial interface) oran IP interface.

In some implementations, a condition may not be detectable by a VNF 230,so NFV platform 210 may use a communication channel and protocoldescribed herein to generate and provide a message to VNF 230identifying the condition and/or causing an action to be performed withrespect to the VNF 230 or the condition, as described in more detailbelow.

As an example of a scenario in which NFV platform 210 may identify acondition associated with the one or more VNFs 230, assume that a routerVNF 230 is implemented on NFV platform 210 with a set of virtualinterfaces. In this case, assume that the virtual interfaces areoperational and the routing protocols running in the router VNF 230advertise links with which the virtual interfaces are associated,irrespective of the link status of the physical ports associated withthe virtual interfaces. This can lead to black holing of traffic in theevent of link failure of one or more of the physical ports of hostsystem 215 as the router VNF 230 may continue to route traffic to thefailed link, resulting in packet loss. In some implementations, the NFVplatform 210 may detect the failed link condition through communicationwith the host system 215 (e.g., via a message exchange of one or more ofthe example messages described below).

As another example of a scenario in which NFV platform 210 may identifya condition associated with the one or more VNFs 230, assume that VNF230 (e.g., a software-defined wide area network (SD-WAN) VNF) isassociated with a primary interface (e.g., a 10G Ethernet interface) anda secondary interface (e.g., a long term evolution (LTE) interface), andthe VNF 230 is configured to route packets out over the primaryinterface when the primary interface is operational, and to switch tothe secondary interface when the primary interface is not operational.In this case, the VNF 230 may have no direct way of determining whetherthe primary interface is operational. In some implementations, the NFVplatform 210 may detect that the condition of the primary interface notbeing operational based on communication with the host system 215 (e.g.,via a message exchange of one or more of the messages described below).

As another example of a scenario in which NFV platform 210 may identifya condition associated with the one or more VNFs 230, assume that VNFs230 utilize a traceroute function, and it is beneficial to enhance thetraceroute function to provide information on where the VNFs 230 areimplemented. In this case, the VNFs 230 may have no informationassociated with a platform (e.g., the NFV platform 210 or host system215) that is hosting the VNFs 230. In some implementations, the NFVplatform 210 may detect a traceroute condition and facilitate providingsuch information on the VNFs 230 to one another based on communicationwith the host system 215 and the VNFs 230 (e.g., via one or more messageexchanges of one or more of the messages described below).

As another example of a scenario in which NFV platform 210 may identifya condition associated with the one or more VNFs 230, assume that NFVplatform 210 provides password-free, yet secure, access to VNFs 230 thatNFV platform 210 (or the host system 215) hosts, which may aid in ZeroTouch Provisioning (ZTP) of the VNFs 230 and saving IP addresses (e.g.,such that a remote controller can reach any VNF 230 via a single IPaddress). In this case, when VNFs 230 are activated, a user (e.g., anetwork administrator) may manually log into each VNF 230 and set uppassword-free access to that VNF 230, which may be cumbersome if aservice provider is managing numerous (e.g., thousands) of NFVplatforms, each running tens or hundreds of VNFs 230. Accordingly, insome implementations, NFV platform 210 may detect the password-freeaccess condition of VNFs 230 using the communication framework betweenhost system 215 and VNFs 230 described herein and enable thepassword-free access to VNFs 230 as described below.

As another example of a scenario in which NFV platform 210 may identifya condition associated with the one or more VNFs 230, assume that a VNF230 is associated with a flow/session-based data plane andterminating/starting transmission control protocol (TCP) sessions. In apure appliance-based environment, such a flow-based system may utilizethe NIC's TCP checksum offload/TCP segmentation offload (TCO/TSO), toaccelerate TCP performance. In a VNF-based environment, a VNF 230 mayhave only virtual interfaces and, for this reason, may not haveinformation identifying whether the actual physical NIC (which istypically WAN facing) on the host system 215 is capable of TCO/TSOfunctions. In this case, the VNF 230 cannot take advantage of TCO/TSOcapabilities on the NIC, which may result in inferior TCP/UDPperformance. In some implementations, NFV platform 210 may detect thecondition in which VNFs 230 may take advantage of TCO/TSO functions of aNIC of the host system 215 (e.g., when VNFs 230 have aflow/session-based data plane), and facilitate communication between thehost system 215 and VNFs 230 to enhance TCP/UDP performance via theTCO/TSO functions of the NIC.

As further shown in FIG. 4, process 400 may include determininginformation to be provided or an action to be performed with regard tothe one or more VNFs based on the condition (block 420). For example,NFV platform 210 may determine information to be provided with regard tothe one or more VNFs 230 based on the condition. Additionally, oralternatively, NFV platform 210 may identify an action to be performedwith regard to the one or more VNFs 230 based on the condition.

In some implementations, the information may identify the condition, mayidentify parameters or information associated with the condition, and/orthe like. For example, for a link failure or link creation condition,the information may identify a name of a physical interface, an addressof the physical interface, and/or an operational state of the physicalinterface. As another example, for an IP provisioning condition, theinformation may identify an IP address, subnet mask, gateway IP address,domain name server (DNS) address, and/or the like. As yet anotherexample, for a NIC interface condition, the information may identify aname of a NIC, a maximum transmission unit (MTU) of a NIC, whether TCOand/or TSO is enabled, and/or the like. As still another example, forhost information of the host system 215, the information may identify ahost name, host IP address, and/or the like. As another example, forzero-touch provisioning (ZTP), the information may identify a filelocation of a ZTP file on the host system 215.

In some implementations, the action may be performed by VNF 230 based onthe information. For example, for a link failure, the action may includesending an updated route advertisement. As another example, for IPprovisioning, the action may include configuring communication using theIP information. As yet another example, for a NIC, the action mayinclude configuring communication with the NIC. As still anotherexample, for ZTP, the action may include configuring VNFs 230 based onthe ZTP file.

As further shown in FIG. 4, process 400 may include generating ortransmitting a message including the information and/or to cause theaction to be performed with regard to VNFs 230 (block 430). For example,NFV platform 210 may generate and transmit a message to VNFs 230 and/orcause host system 215 to generate or transmit a message to VNFs 230.Additionally, or alternatively, NFV platform 210 may cause an action tobe performed by VNFs 230 and/or cause an action to be performed withrespect to VNFs 230.

In some implementations, NFV platform 210 may transmit the message via aserial interface, such as a virtio-serial interface or a similarinterface between NFV platform 210 (or host system 215) and the one ormore VNFs 230. In this way, NFV platform 210 may transmit the messagevia an interface that is uncomplicated relative to transmitting themessage other than via a serial interface, that is always available,and/or that can work without IP connectivity between VNF 230 and NFVplatform 210 (or host system 215).

In some implementations, NFV platform 210 may transmit the message viaanother type of interface, such as an IP interface. For example, whenVNF 230 is remote from NFV platform 210, no serial interface may existbetween VNF 230 and NFV platform 210. In such a case, NFV platform 210may use an IP interface.

In some implementations, messages exchanged between the NFV platform210, the host system 215, and/or VNFs 230 may have a particular format(e.g., based on a particular protocol). In some implementations, theformat may be extensible, which may provide adaptability of themessaging format described herein. An example of the message format withType-Length-Value (TLV) fields is shown below:

0 1 2 3 4 5 6 7 VERSION MESSAGE TYPE PACKET LENGTH TLV 1 TLV 2 . . . TLVn

In the above example:

-   -   VERSION may be for downward compatibility in the future. In some        implementations, this field may be set to 1.    -   MESSAGE TYPE may hold one or more of the message types mentioned        in the sections below. In some implementations, this field may        be eight bits wide.    -   PACKET LENGTH may hold a value that identifies the length of the        packet, including the header, in bytes. In some implementations,        the maximum length of the packet may be 255 bytes.    -   A TLV represents a unit of information exchanged with this        protocol. A particular message type can include any number of        TLVs in the message, and each TLV will identify one particular        sub-type, its length including the TLV header, and the actual        value as ASCII coded text.

The below table provides possible information values for an exampleprotocol packet format:

MESSAGE TYPE Description Direction TLVs used INTERFACE VNF gets thisHost to VNF TLV TYPE INTERFACE NAME STATUS message whenever Name of theInterface physical interface TLV TYPE INTERFACE OPER goes down STATEOperational state: UP/DOWN MGMT Management IP Host to VNF TLV TYPE INETADDRESS ACCESS INFO Provisioning IPv4 address (or IPv6 or later) for themanagement interface TLV TYPE SUBNET MASK - Subnet mask for themanagement Interface TLV TYPE DEFAULT GATEWAY Default gateway IPv4address (or IPv6 or later) TLV TYPE NAME SERVER ADDRESS DNS server IPv4address (or IPv6 or later) INTERFACE WAN NIC capabilities - Host to VNFTLV TYPE WAN PORT CAPABILITY MTU, TCO/TSO NAME capability, etc. Valueset to Name of the WAN facing NIC TLV TYPE WAN PORT MTU Value set to MTUof the WAN facing NIC TLV TYPE WAN PORT TCO Value set to TRUE/FALSE TLVTYPE WAN PORT TSO Value set to TRUE/FALSE HOST INFO Informationpertaining Host to VNF TLV TYPE HOST DEVICE to platform hosting the NAMEVNFs Hostname configured on the host OS TLV TYPE HOST MANAGEMENT IPADDRESS Management IPv4 address (or IPv6 or later) of the host OSSERVICE VNF withdrawal from VNF to Host TLV TYPE WITHDRAWAL WITH-service chain REASON DRAWAL Reason for withdrawal TLV TYPE WITHDRAWALDURATION Optional TLV, mentions timer for adding VNF back, in minutesZTP INFO Zero Touch Host to VNF TLV TYPE STARTUP CFG Provisioning FILEURL Information. VNF File location on the host can connect to host viahypertext transfer protocol (HTTP) and download this file throughwget/curl tools HELLO For non-IP based Both TLV TYPE SEQ NUMBER REQ,liveness detection, Sequence number of the hello HELLO this message canbe request REPLY used, to detect if the TLV TYPE TIMESTAMP VNF is up ordown. Time on the sending device at the time of generating this packetSSH PUBLIC Secure Shell (SSH) Host to VNF TLV TYPE USER NAME KEY publickey for Username for SSH key pair password-less TLV TYPE SSH PUB KEYaccess to VNF Public key for the access

In some implementations, NFV platform 210 may use the communicationchannel and protocol described herein to address the example scenariosdescribed in connection with block 410 of FIG. 4, above.

With regard to the physical interface outage scenario described above,whenever physical links become non-operational or operational (e.g., go“down” or “up”), NFV platform 210 may notify VNF 230 by generatingand/or transmitting an INTERFACE STATUS message, as described above. Inthis case, VNF 230 may map the message to one or many of its virtualinterfaces. On receiving this message, VNF 230 may modify the virtualinterface status accordingly, and may update routing protocols toadvertise accurate reachability information that reflects an actualphysical connectivity.

With regard to the primary interface outage scenario described above,platform software of NFV platform 210 may detect a loss of a primarylink and switch over to a secondary link. In this case, NFV platform 210may generate and/or transmit an INTERFACE STATUS message, as describedabove, that identifies the primary interface and a status of the primaryinterface (“down” in this case). By sending the INTERFACE STATUSmessage, VNF 230 may trigger a switchover to the secondary interface.

With regard to the traceroute scenario described above, a traceroutefunction may be modified to an enhanced version of the traceroutefunction where not only IP addresses of the hops are listed, but alsomore details about each hop (e.g., a type of device, hostname of thedevice, and location) are listed. In some implementations, NFV platform210 may generate and/or transmit a HOST INFO message, as describedabove, and may share a host name of host system 215 with VNF 230 in theHOST INFO message. In this case, VNF 230 may add the information intrace probes so as to identify VNF 230 as a VNF, and to identify whereVNF 230 is hosted. For example, the VNF 230 host name, location, etc.may be useful in troubleshooting or providing visibility intovirtualized networks.

With regard to the ZTP scenario described above, by using thecommunication framework described herein between NFV platform 210, hostsystem 215, and VNFs 230, a need to manually log into each VNF 230 maybe avoided, and the access process may be automated. For example, once apublic key is set up, the public key may be exported by NFV platform 210generating and/or transmitting an SSH PUBLIC KEY message, as describedabove, to VNFs 230. In this case, if required, NFV platform 210 maygenerate and/or transmit a ZTP INFO message, as described above, to VNF230 to bootstrap the VNF 230 with a custom configuration.

With regard to the NIC interface scenario described above, NFV platform210 may advertise the capabilities of WAN facing NIC to VNFs 230 bygenerating and/or transmitting an INTERFACE CAPABILITY message, asdescribed above. In this case, VNF 230 may adjust its TCP protocol stackto turn on TCO/TSO functionality, giving better TCP/UDP performance.

In this way, some implementations described herein may provide efficienttechniques for remedying frequently-encountered problems or limitationsin scenarios associated with Virtual Network Functions.

In some implementations, a message may include a direction element. Forexample, the direction element may indicate whether host system 215 istransmitting the message to VNF 230, or whether VNF 230 is transmittingthe message to the host system 215. In this way, a message transmittedin the wrong direction (e.g., a direction inconsistent with an actualdirection of the message) may be silently discarded, which may protectthe host system 215 from misuse of the protocol to obtain sensitiveinformation.

As a particular example, SSH PUBLIC KEY messages are intended to be sentfrom host system 215 to VNFs 230, rather than from VNFs 230 to hostsystem 215. If host system 215 receives an SSH PUBLIC KEY message from aVNF 230, the SSH PUBLIC KEY message may be treated as an attack based onthe direction element, the packet may be silently discarded, and/or theevent may be reported to an administrator. Additionally, oralternatively, the variety of information exported to VNF 230 by hostsystem 215 may be limited to network events and basic operational needs,and may not include sensitive information regarding host system 215.Additionally, or alternatively, NFV platform 210 may install IP tablerules to discard unwanted or unexpected packets from VNFs 230. In thisway, security of NFV platform 210 and/or host system 215 may beimproved.

Although FIG. 4 shows example blocks of process 400, in someimplementations, process 400 may include additional blocks, fewerblocks, different blocks, or differently arranged blocks than thosedepicted in FIG. 4. Additionally, or alternatively, two or more of theblocks of process 400 may be performed in parallel.

Some implementations described herein may provide a communicationchannel and protocol for communication between an NFV platform and VNFsto exchange information regarding the host system and/or other VNFs. Forexample, some implementations described herein may provide astandardized messaging system to convey information regarding physicalaspects of the host system to VNFs hosted on the host system. In thisway, states of physical interfaces, parameters associated with the hostsystem, IP information, and/or the like can be communicated from the NFVplatform to the VNFs, which improves performance of the VNFs and reducesthe occurrence of problems relating to lack of visibility of physicalaspects of the host system. Thus, VNF performance may be improvedwithout requiring implementation of an external controller orresource-intensive monitoring operations by the VNFs. As a result ofimproved VNF performance, devices utilizing the VNFs or receiving aservice via the VNFs may receive improved performance and avoid trafficblack holing or packet loss.

The foregoing disclosure provides illustration and description, but isnot intended to be exhaustive or to limit the implementations to theprecise form disclosed. Modifications and variations are possible inlight of the above disclosure or may be acquired from practice of theimplementations.

As used herein, the term component is intended to be broadly construedas hardware, firmware, and/or a combination of hardware and software.

It will be apparent that systems and/or methods, described herein, maybe implemented in different forms of hardware, firmware, or acombination of hardware and software. The actual specialized controlhardware or software code used to implement these systems and/or methodsis not limiting of the implementations. Thus, the operation and behaviorof the systems and/or methods were described herein without reference tospecific software code—it being understood that software and hardwarecan be designed to implement the systems and/or methods based on thedescription herein.

Even though particular combinations of features are recited in theclaims and/or disclosed in the specification, these combinations are notintended to limit the disclosure of possible implementations. In fact,many of these features may be combined in ways not specifically recitedin the claims and/or disclosed in the specification. Although eachdependent claim listed below may directly depend on only one claim, thedisclosure of possible implementations includes each dependent claim incombination with every other claim in the claim set.

No element, act, or instruction used herein should be construed ascritical or essential unless explicitly described as such. Also, as usedherein, the articles “a” and “an” are intended to include one or moreitems, and may be used interchangeably with “one or more.” Furthermore,as used herein, the term “set” is intended to include one or more items(e.g., related items, unrelated items, a combination of related andunrelated items, etc.), and may be used interchangeably with “one ormore.” Where only one item is intended, the term “one” or similarlanguage is used. Also, as used herein, the terms “has,” “have,”“having,” and/or the like are intended to be open-ended terms. Further,the phrase “based on” is intended to mean “based, at least in part, on”unless explicitly stated otherwise.

What is claimed is:
 1. A network function virtualization (NFV) platform,comprising: a memory; and one or more processors to: identify acondition associated with the NFV platform, where the condition affectsoperation of at least one virtual network function (VNF) hosted by orassociated with the NFV platform; determine, based on the condition,information to be provided or an action to be performed with regard tothe at least one VNF; and transmit a message identifying the informationand/or to cause the action to be performed with regard to the at leastone VNF, the message including a value indicating a type of message, thevalue indicating a first type of message sent from the NFV platform to aVNF or a second type of message sent from the VNF to the NFV platform,and the at least one VNF is to discard the message, transmitted by theNFV platform, if the value indicates the second type of message sentfrom the VNF to the NFV platform.
 2. The NFV platform of claim 1, wherethe condition is associated with a physical interface associated withthe NFV platform.
 3. The NFV platform of claim 2, where the informationindicates a status of the physical interface.
 4. The NFV platform ofclaim 1, where the action includes updating a routing protocol of the atleast one VNF.
 5. The NFV platform of claim 1, where the informationincludes information identifying the NFV platform.
 6. The NFV platformof claim 1, where the information includes information identifying acapability of a network interface controller.
 7. The NFV platform ofclaim 1, where the message is transmitted via a serial interface betweenthe NFV platform and the at least one VNF.
 8. A method, comprising:identifying, by a network function virtualization (NFV) platform, firstinformation associated with the NFV platform, where the firstinformation relates to operation of at least one virtual networkfunction (VNF) hosted by or associated with the NFV platform;determining, by the NFV platform and based on the first information,second information to be provided or an action to be performed withregard to the at least one VNF; and providing, by the NFV platform, amessage identifying the second information and/or to cause the action tobe performed with regard to the at least one VNF, where the messageincludes a value indicating a type of message, the value selectivelyindicating a first type of message sent from the NFV platform to a VNFor a second type of message sent from the VNF to the NFV platform, theat least one VNF is to discard the message, transmitted by the NFVplatform, if the value indicates the second type of message sent fromthe VNF to the NFV platform.
 9. The method of claim 8, where the firstinformation identifies a condition of a physical interface associatedwith the NFV platform.
 10. The method of claim 8, where the messagecomprises a message type field, a packet length field, or at least onetype-length-value (TLV) field that includes the second information. 11.The method of claim 8, where the message is provided to at least one VNFthat is not hosted by the NFV platform.
 12. The method of claim 8, wherethe first information is received from the at least one VNF.
 13. Themethod of claim 8, where the second information includes InternetProtocol provisioning information.
 14. The method of claim 8, where thesecond information is included in a field of the message that has atype-length-value format.
 15. A non-transitory computer-readable mediumstoring instructions, the instructions comprising: one or moreinstructions that, when executed by one or more processors, cause theone or more processors to: identify a condition associated with aphysical interface associated with a network function virtualization(NFV) platform, where the condition affects operation of at least onevirtual network function (VNF) hosted by or associated with the NFVplatform; determine, based on the condition, information to be providedand an action to be performed with regard to the at least one VNF; andtransmit a message identifying the information and to cause the actionto be performed with regard to the at least one VNF, the messageincluding a value indicating a type of message, the value selectivelyindicating a first type of message sent from the NFV platform to a VNFor a second type of message sent from the VNF to the NFV platform, theat least one VNF is to discard the message, transmitted by the NFVplatform, if the value indicates the second type of message sent fromthe VNF to the NFV platform.
 16. The non-transitory computer-readablemedium of claim 15, where the at least one VNF is to notify anadministrator if the value indicating the type of message indicates thesecond type of message.
 17. The non-transitory computer-readable mediumof claim 15, where the condition is identified by a host operatingsystem of the NFV platform.
 18. The non-transitory computer-readablemedium of claim 15, where the information indicates a status of thephysical interface.
 19. The non-transitory computer-readable medium ofclaim 15, where the action includes configuring communication from theNFV platform to the at least one VNF using internet protocol (IP)information.
 20. The non-transitory computer-readable medium of claim15, where the action includes configuring communication from the NFVplatform to the at least one VNF using network interface controller(NIC) configuration.